package com.algorithm.sort;

/**
 * @program: 冒泡排序
 * @author: luhd
 * @create: 2021-08-09
 */
public class BubbleSorting {
    public static void main(String[] args) {
        /**
         * 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端
         * 时间复杂度：O(n^2)   最好情况：O(n)    最差情况O(n^2)
         */
        int [] arr = {15,5,3,7,9,2,18,10};
        bubbleSort(arr);
    }
    public static void bubbleSort(int[] arr){
        int len = arr.length;
        for (int i = 0; i < len - 1; i++) {     //控制外层循环，保证内部两两比较的次数
            for (int j = 0; j < len-i-1; j++) { //相邻两个比较，最大的到最上面去，所以用j和j+1来比较
                if(arr[j]>arr[j+1]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        for (int i = 0; i < len; i++) {
            System.out.print(arr[i]+" ");
        }
    }
}
